package cn.tedu.plus.localDateTime;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.ZoneOffset;

public class LocalDateTimeDemo {
    public static void main(String[] args) {

        //使用不同方式获取LocalDateTime对象
        LocalDateTime localDateTime1 = LocalDateTime.now();
        System.out.println(localDateTime1);

        LocalDateTime localDateTime2 = LocalDateTime.of(2024, 10, 10, 10, 10, 10);
        System.out.println(localDateTime2);

        LocalDateTime localDateTime3 = LocalDateTime.parse("2024-05-05T10:10:10");
        System.out.println(localDateTime3);

        System.out.println();

        //获取LocalDateTime对象的各字段值
        int hour = localDateTime1.getHour();
        System.out.println(hour);
        int value = localDateTime1.getDayOfWeek().getValue();
        System.out.println(value);

        System.out.println();

        //设置LocalDateTime对象的各字段值
        LocalDateTime localDateTime5 = localDateTime2.withMonth(11);
        System.out.println(localDateTime5);

        LocalDateTime localDateTime4 = localDateTime5.withSecond(20);
        System.out.println(localDateTime4);

        System.out.println();

        //增减操作
        LocalDateTime localDateTime6 = localDateTime3.plusDays(2);
        System.out.println(localDateTime6);
        LocalDateTime localDateTime7 = localDateTime3.minusYears(1);
        System.out.println(localDateTime7);

        System.out.println();

        //通过LocalDateTime对象获取LocalDate对象
        LocalDate localDate = localDateTime1.toLocalDate();
        System.out.println(localDate);

        //通过LocalDateTime对象获取LocalTime对象
        LocalTime localTime = localDateTime1.toLocalTime();
        System.out.println(localTime);

        System.out.println();

        //获取时间戳
        long time = LocalDateTime.now().toInstant(ZoneOffset.of("+8")).toEpochMilli();
        System.out.println(time);
    }
}
